SimNANO Wiki

SimpleNEB

SimpleNEB is a demonstration program for the NEB algorithm written in the Python programming language. To run it, you need a working Python installation and the libraries mentioned below (at least numpy and matplotlib). All the neccessary information is provided in the docstring below.

You can download the source code here: SimpleNEB.py

SimpleNEB
=========

v 1.1

author: Ondrej Marsalek
        ondrej.marsalek@matfyz.cz

This is a tutorial implementation of the NEB method for finding a minimum
energy path and the corresponding saddle point energy in two dimensions.

For configuration, see the __init__ method. If you want to configure the
SimpleNEB class for a different potential, just add the potential and force
as new methods and override the configuration or change the defaults in the
__init__ method.

Two improvements of the standard NEB method are implemented according
to the article:

"A climbing image nudged elastic band method for finding saddle points
and minimum energy paths"
Henkelman G, Uberuaga B P, Jonsson H
J Chem Phys, vol. 113, n. 22, 8 December 2000

1) Climbing image
Due to this, the highest energy is the saddle point energy,
no interpolation needed.

2) Variable spring constants
This provides higher resolution around the saddle point, increasing
precission.

The calculation of tangents is based on this article:
G. Henkelman, G. Johannesson, and H. Jonsson
"Methods for Finding Saddle Points and Minimum Energy Paths"
in Progress on Theoretical Chemistry and Physics, 269-300
Ed. S. D. Schwartz (Kluwer Academic Publishers, 2000)

Both articles can be found here:
http://theory.cm.utexas.edu/henkelman/pubs/

The program needs the following python modules:
 * numpy - fast arrays
 * matplotlib - for plotting, pylab interface
 * scipy - optional, scipy.weave can be used for the provided example potential

CHANGELOG:

1.1 corrected bug in spring force projection
    plotting to file added
    optimizer changed to simple steepest descend (more stable)

1.0 initial release